//package com.example.administrator.managesystem;
//
//import android.app.Activity;
//import android.app.AlertDialog;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.os.Bundle;
//import android.text.Editable;
//import android.text.TextUtils;
//import android.text.TextWatcher;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.widget.EditText;
//import android.widget.ListView;
//import android.widget.Toast;
//
//import com.ezviz.hcnetsdk.EZLoginDeviceInfo;
//import com.ezviz.hcnetsdk.EZSADPDeviceInfo;
//import com.google.gson.Gson;
//import com.videogo.constant.IntentConsts;
//import com.videogo.exception.BaseException;
//import com.videogo.openapi.EZHCNetDeviceSDK;
//import com.videogo.util.LogUtil;
//
//import java.util.ArrayList;
//
//public class LanDeviceActivity extends Activity {
//    private static final String TAG = "LanDeviceActivity";
//
//    private ListView mListView;
//    private ArrayList<EZSADPDeviceInfo> mArrayList = new ArrayList<EZSADPDeviceInfo>();
//
//    private LandeviceAdapter mLandeviceAdapter;
//    protected static int REQUEST_ACTIVATE = 0x0001;
//
//    private AlertDialog mLoginDialog;
//
//    private int mCurrentPosition;
//
//    private EZLoginDeviceInfo mEZloginDeviceInfo;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_hc);
//        mListView = (ListView) findViewById(R.id.list_device);
//        EZHCNetDeviceSDK.getInstance().startLocalSearch(new EZHCNetDeviceSDK.SadpDeviceFoundListener() {
//            @Override
//            public void onDeviceFound(final EZSADPDeviceInfo sadp_device_info) {
//                LogUtil.d(TAG,
//                        "onDeviceFound  " + sadp_device_info.getDeviceSerial() + "  " + sadp_device_info.getDeviceSerial());
//                Gson gson = new Gson();
//                LogUtil.d(TAG, "onDeviceFound  " + gson.toJson(sadp_device_info));
//                runOnUiThread(new Runnable() {
//                    @Override
//                    public void run() {
//                        for (int i = 0; i < mArrayList.size(); i++) {
//                            String serial = sadp_device_info.getDeviceSerial();
//                            String oldserial = mArrayList.get(i).getDeviceSerial();
//                            if (serial.equals(oldserial)) {
//                                return;
//                            }
//                        }
//                        mLandeviceAdapter.add(sadp_device_info);
//                    }
//                });
//            }
//        });
//
//        mLandeviceAdapter = new LandeviceAdapter(this, mArrayList);
//        mListView.setAdapter(mLandeviceAdapter);
//        mLandeviceAdapter.setOnItemClickListener(new LandeviceAdapter.OnItemClickListener() {
//            @Override
//            public void onItemClick(int position) {
//                mCurrentPosition = position;
//                if (!mLandeviceAdapter.getItem(mCurrentPosition).isActived()) {
//                    Intent intent = new Intent(LanDeviceActivity.this, LanDeviceActivateActivity.class);
//                    intent.putExtra(IntentConsts.EXTRA_DEVICE_ID, mLandeviceAdapter.getItem(mCurrentPosition).getDeviceSerial());
//                    startActivityForResult(intent, REQUEST_ACTIVATE);
//                } else {
//                    showLoginDialog(mCurrentPosition);
//                }
//            }
//        });
//    }
//
//    @Override
//    protected void onDestroy() {
//        EZHCNetDeviceSDK.getInstance().stopLocalSearch();
//        super.onDestroy();
//    }
//
//    private void showNotSupportViewDailog() {
//        new AlertDialog.Builder(this).setMessage(R.string.device_not_support_view)
//                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialogInterface, int i) {
//
//                    }
//                });
//    }
//
//    @Override
//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//        if (requestCode == REQUEST_ACTIVATE && resultCode == RESULT_OK) {
//            mLandeviceAdapter.getItem(mCurrentPosition).setActived(true);
//            showLoginDialog(mCurrentPosition);
//        }
//    }
//
//    private void toPlayActivity(final EZLoginDeviceInfo loginDeviceInfo) {
//        if (loginDeviceInfo == null || loginDeviceInfo.getLoginId() < 0) {
//            if (!mLandeviceAdapter.getItem(mCurrentPosition).isActived()) {
//                Intent intent = new Intent(LanDeviceActivity.this, LanDeviceActivateActivity.class);
//                intent.putExtra(IntentConsts.EXTRA_DEVICE_ID, mLandeviceAdapter.getItem(mCurrentPosition).getDeviceSerial());
//                startActivityForResult(intent, REQUEST_ACTIVATE);
//            } else {
//                showLoginDialog(mCurrentPosition);
//            }
//            return;
//        }
//        if (loginDeviceInfo.getByChanNum() + loginDeviceInfo.getByIPChanNum() > 1) {
//            SelectLandeviceDialog selectLandeviceDialog = new SelectLandeviceDialog();
//            selectLandeviceDialog.setLoginDeviceInfo(loginDeviceInfo);
//            selectLandeviceDialog.setCameraItemClick(new SelectLandeviceDialog.CameraItemClick() {
//                @Override
//                public void onCameraItemClick(int playChannelNo) {
//                    Intent intent = new Intent(LanDeviceActivity.this, LanDevicePlayActivity.class);
//                    intent.putExtra(IntentConsts.EXTRA_DEVICE_ID, mLandeviceAdapter.getItem(mCurrentPosition).getDeviceSerial());
//                    intent.putExtra(IntentConsts.EXTRA_CHANNEL_NO, playChannelNo);
//                    intent.putExtra("iUserId", loginDeviceInfo.getLoginId());
//                    startActivity(intent);
//                }
//            });
//            selectLandeviceDialog.show(getFragmentManager(), "onLanPlayClick");
//
//            //Single channel // no channel
//        } else if (loginDeviceInfo.getByChanNum() + loginDeviceInfo.getByIPChanNum() == 1) {
//            if (loginDeviceInfo.getByChanNum() > 0) {
//                Intent intent = new Intent(LanDeviceActivity.this, LanDevicePlayActivity.class);
//                intent.putExtra(IntentConsts.EXTRA_DEVICE_ID, mLandeviceAdapter.getItem(mCurrentPosition).getDeviceSerial());
//                intent.putExtra(IntentConsts.EXTRA_CHANNEL_NO, loginDeviceInfo.getByStartChan());
//                intent.putExtra("iUserId", loginDeviceInfo.getLoginId());
//                startActivity(intent);
//            } else {
//                Intent intent = new Intent(LanDeviceActivity.this, LanDevicePlayActivity.class);
//                intent.putExtra(IntentConsts.EXTRA_DEVICE_ID, mLandeviceAdapter.getItem(mCurrentPosition).getDeviceSerial());
//                intent.putExtra(IntentConsts.EXTRA_CHANNEL_NO, loginDeviceInfo.getByStartDChan());
//                intent.putExtra("iUserId", loginDeviceInfo.getLoginId());
//                startActivity(intent);
//            }
//        } else {
//            showNotSupportViewDailog();
//        }
//    }
//
//    public void showLoginDialog(final int position) {
//        if (mLoginDialog != null && mLoginDialog.isShowing()) {
//            return;
//        }
//        LayoutInflater inflater = LayoutInflater.from(this);
//        View safeview = inflater.inflate(R.layout.lan_device_login_dialog, null);
//        final EditText loginName = (EditText) safeview.findViewById(R.id.login_name);
//        final EditText loginPwd = (EditText) safeview.findViewById(R.id.login_pwd);
//        mLoginDialog = new AlertDialog.Builder(this).setTitle(R.string.lan_device_login_title)
//                .setView(safeview)
//                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                    }
//                })
//                .setPositiveButton(R.string.certain, new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        final String name = loginName.getText().toString();
//                        final String pwd = loginPwd.getText().toString();
//                        if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(pwd)) {
//                            new Thread(new Runnable() {
//                                @Override
//                                public void run() {
//                                    try {
//                                        final EZLoginDeviceInfo ezLoginDeviceInfo = EZHCNetDeviceSDK.getInstance()
//                                                .loginDeviceWithUerName(name, pwd, mLandeviceAdapter.getItem(mCurrentPosition).getLocalIp(),
//                                                        mLandeviceAdapter.getItem(mCurrentPosition).getLocalPort());
//                                        runOnUiThread(new Runnable() {
//                                            @Override
//                                            public void run() {
//                                                onLoginSuccess(ezLoginDeviceInfo);
//                                            }
//                                        });
//                                    } catch (final BaseException e) {
//                                        e.printStackTrace();
//                                        runOnUiThread(new Runnable() {
//                                            @Override
//                                            public void run() {
//                                                onLoaginFailed(e.getErrorCode(), e.getMessage());
//                                            }
//                                        });
//                                    }
//                                }
//                            }).start();
//                        } else {
//                            Toast.makeText(LanDeviceActivity.this, "username or passwor is null", Toast.LENGTH_LONG).show();
//                            showLoginDialog(mCurrentPosition);
//                        }
//                    }
//                })
//                .setOnCancelListener(new DialogInterface.OnCancelListener() {
//                    @Override
//                    public void onCancel(DialogInterface dialog) {
//
//                    }
//                })
//                .setCancelable(false)
//                .create();
//        TextWatcher textWatcher = new TextWatcher() {
//            @Override
//            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//
//            }
//
//            @Override
//            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//
//            }
//
//            @Override
//            public void afterTextChanged(Editable editable) {
//                if (!TextUtils.isEmpty(loginName.getText().toString().trim()) && !TextUtils.isEmpty(
//                        loginPwd.getText().toString().trim())) {
//                    mLoginDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
//                } else {
//                    mLoginDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
//                }
//            }
//        };
//        loginName.addTextChangedListener(textWatcher);
//        loginPwd.addTextChangedListener(textWatcher);
//        mLoginDialog.show();
//    }
//
//    public void onLoginSuccess(EZLoginDeviceInfo ezLoginDeviceInfo) {
//        toPlayActivity(ezLoginDeviceInfo);
//    }
//
//    public void onLoaginFailed(int errorCode, String errorMsg) {
//        int ERROR_NET_DVR_PASSWORD_ERROR =
//                1; //username or password is incorrect. The user name or password entered when registering is incorrect.
//        int ERROR_NET_DVR_PASSWORD_ERROR2 =
//                1100; //username or password is incorrect. The user name or password entered when registering is incorrect.
//        if (errorCode == ERROR_NET_DVR_PASSWORD_ERROR || errorCode == ERROR_NET_DVR_PASSWORD_ERROR2) {
//            new AlertDialog.Builder(this).setMessage(R.string.hc_net_account_pwd_error)
//                    .setNegativeButton(R.string.cancel, null)
//                    .setPositiveButton(R.string.retry, new DialogInterface.OnClickListener() {
//                        @Override
//                        public void onClick(DialogInterface dialogInterface, int i) {
//                            showLoginDialog(mCurrentPosition);
//                        }
//                    })
//                    .show();
//        } else {
//            new AlertDialog.Builder(this).setMessage(getString(R.string.hc_net_error) + errorCode)
//                    .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
//                        @Override
//                        public void onClick(DialogInterface dialogInterface, int i) {
//                            dialogInterface.dismiss();
//                        }
//                    })
//                    .show();
//        }
//    }